package com.hjl.mapper;

import com.hjl.entity.Emp;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author ServivE
 * @version 0.1
 * @className EmpDao
 * @description
 * @date 2024/7/29 15:22
 * @since jdk11
 */
public interface EmpMapper {
    List<Emp> getAllEmps();

    //    根据主键查询一个对象
    Emp getEmpById(int eid);

    //新增
    int addEmp(Emp emp);

    int updateEmp(Emp emp);

    int delEmp(int eid);

    List<Emp> getEmpBySalAndDept(Emp emp);
//    使用association
    List<Emp> getEmpAndDeptByEid(@Param("eid")int eid);

    /**
     * 若查询出的数据有多条
         * 可以通过实体类类型的list集合接收
         * 可以通过map类型的list集合接收
         * 可以在mapper接口的方法上添加@MapKey注解，
         * 此时就可以将每条数据转换的map集合作为值，以某个字段的值作为键，放在同一个map集合中
     * @return
     */
    //查询所有用户信息为map集合
//    List<Map<String, Object>> getAllEmpToMap();

    @MapKey("eid")//以id作为键
    Map<String, Object> getAllEmpToMap();
}
